home *** CD-ROM | disk | FTP | other *** search
- ║CM:MSD - $╞43─
- ║LM21:RM70:PP66:PG60
- ║P#124
- ║FT1:,,╨AGE <>
- ║AI-16
- ├╘╠╥─ ├ONTROL READING OF HEADER BLOCK
-
- $╞43─ ╩╙╥ ╙╥├╚ [$╞446] TO SET UP HEADER AND READ IT.
- $╞440 ╔F .┌ IS SET THEN ALL WENT WELL SO BRANCH TO ├╘╠10.
- $╞442 ╩UMP TO ├╠┼╬╒╨ [$╞65┼] TO CLEAN UP AFTER COMMAND.
- $╞445 ├╘╠10 ╥ETURN.
-
-
-
- ╙╥├╚ ┬UILD HEADER AND THEN TRY TO FIND IT
-
- $╞446 ╠OAD .╪ WITH ─╥╔╓┼ [$┬0].
- $╞448 ├OPY ─╙╦╔─1,╪ [$4├24,╪] AND ─╙╦╔─2,╪ [$4├26,╪] TO ╔─1 [$4├28] AND ╔─2 [$4├29] OF THE HEADER.
- $╞454 ├OPY ╩╧┬╘╥╦ [$4┼┴5] AND ╩╧┬╙┼├ [$4┼┴6] TO THE HEADER TRACK [$4├2┴] AND SECTOR [$4├2┬].
- $╞460 ├ALCULATE HEADER CHECKSUM AND SAVE IN [$4├2├].
- $╞46├ ╩╙╥ ├╧╬╚─╥ [$╞622] TO CONVERT THE HEADER TO ╟├╥.
- $╞46╞ ╥EVERSE HEADER IMAGE AT ╙╘┴┬ [$4┼8╞-96] AND SAVE IT AT ╔╙╘┴┬ [$4┼99-┴0].
- $╞47─ ╙ET .╪ TO $5┴ (WILL READ 90 HEADERS BEFORE GIVING UP).
- $╞47╞ ╙╥├╚20 ╩╙╥ ╙┘╬├ [$╞4┴6] TO WAIT FOR A ╙┘╬├ MARK.
- $╞482 ╔F .├ IS CLEAR, A ╙┘╬├ WAS FOUND SO BRANCH TO ╙╥├╚22.
- $╞484 ╠OAD .┴ WITH $03 (╬╧ ╙┘╬├ ├╚┴╥┴├╘┼╥).
- $╞486 ╥ETURN.
- $╞487 ╙╥├╚22 ╫AIT FOR ╙┘╬├ SIGNAL TO VANISH.
- $╞48┴ ╙ET .┘ TO $07 (SIZE OF HEADER BLOCK - 1).
- $╞48├ ╙╥├╚25 ╫AIT FOR BYTE READY.
- $╞490 ╠OAD .┴ WITH BYTE FROM ╨ORT ┬ [$01].
- $╞492 ╔F BYTE DOES NOT MATCH ╔╙╘┴┬,┘ [$4┼99,┘] THEN THIS IS NOT THE RIGHT HEADER SO BRANCH TO ╙╥├╚30 TO CONTINUE SEARCHING.
- $╞497 ─ECREMENT .┘ AND LOOP BACK TO ╙╥├╚25 IF .┘ IS NOT NEGATIVE.
- $╞49┴ ╠OAD .┴ WITH $00 TO INDICATE THE HEADER WAS FOUND.
- $╞49├ ╥ETURN.
- $╞49─ ╙╥├╚30 ─ECREMENT .╪ (NUMBER OF ATTEMPTED HEADER READS).
- $╞49┼ ╔F .╪ IS NOT ZERO THEN LOOP BACK TO ╙╥├╚20 TO CONTINUE LOOKING AT HEADERS.
- $╞4┴0 ╠OAD .┴ WITH $02 (╚┼┴─┼╥ ┬╠╧├╦ ╬╧╘ ╞╧╒╬─).
- $╞4┴2 ╥ETURN.
-
-
-
- ─╙╘╥╘ ╠OCATE HEADER AND WAIT FOR DATA BLOCK
-
- $╞4┴3 ╩╙╥ ├╘╠╥─ [$╞43─] TO CONTROL READING OF HEADER BLOCK.
-
-
-
- ╙┘╬├ ╫AIT FOR ╙┘╬├ MARK
-
- $╞4┴6 ╙ET ╒╠┴# [$1┴] TO $╞8 TO CAUSE A TIMER INTERRUPT IN 63.5 MILLISECONDS.
- $╞4┴┴ ╙ET .┴ TO $03 AND SET THE .├ FLAG AS THE DEFAULT IN CASE A ╙┘╬├ MARK CANNOT BE FOUND.
- ║FP0
- $╞4┴─ ╙┘╬├10 ╔F THE TIMER HAS TIMED OUT, BRANCH TO ╙┘╬├20.
- $╞4┬0 ╔F A ╙┘╬├ HAS NOT BEEN DETECTED LOOP BACK TO ╙┘╬├10.
- $╞4┬3 ╙ET .┘ TO $00 IN PREPARATION FOR READING THE DATA BLOCK.
- $╞4┬5 ├LEAR .├ FLAG TO INDICATE ╙┘╬├ MARK WAS FOUND.
- $╞4┬6 ╙┘╬├20 ╥ETURN.
-
-
-
- ╫╥╔╟╚╘ ├HECK FOR WRITE JOB AND WRITE BLOCK
-
- $╞4┬7 ╔F .┴ = $10 (╫╥╔╘┼) BRANCH TO ╫╥╘05 TO CONTINUE.
- $╞4┬┬ ╩UMP TO ╓╥╞┘ [$╞5─7] TO CHECK FOR OTHER JOB CODES.
- $╞4┬┼ ╫╥╘05 ╩╙╥ ╟╫╘╨╙ [$╞7┼╞] TO CHECK WRITE PROTECT STATUS.
- $╞4├1 ╔F .┌ IS CLEAR, THE DISK CAN BE WRITTE TO SO BRANCH TO ╫╥╘07 TO CONTINUE.
- $╞4├3 ╠OAD .┴ WITH $08 (╫╥╔╥┼ ╨╥╧╘┼├╘ ┼╥╥╧╥).
- $╞4├5 ╫╥╘┼╥╥ ╩UMP TO ├╠┼╬╒╨ [$╞65┼] TO CLEAN UP.
- $╞4├8 ╫╥╘07 ╩╙╥ ╥┼┴─╧╬ [$╞┼1┴] TO SET UP FOR DISK ACCESS.
- $╞4├┬ ╩╙╥ ├╚╦┬╠╦ [$╞52┴] TO CALCULATE DATA CHECKSUM.
- $╞4├┼ SAVE THE CHECKSUM IN ├╚╦╙╒═ [$4┼┴3].
- $╞4─1 ╩╙╥ ┬╔╬╟├╥ [$╞┬28] TO CONVERT THE DATA TO ╟├╥.
- $╞4─4 ╩╙╥ ╫╥╘┬╒╞ [$╞4─├] TO LOCATE THE BLOCK BY READING THE HEADER.
- $╞4─7 ╔F HEADER IS NOT FOUND OR OTHER PROBLEM ENCOUNTERED, BRANCH TO ╫╥╘┼╥╥.
- $╞4─9 ╩UMP TO ╓╥╞┘10 TO VERIFY THE DATA WRITTEN.
-
-
-
- ╫╥╘┬╒╞ ╟ET BLOCK TO BE WRITTEN UNDER READ/WRITE HEAD
-
- $╞4─├ ╩╙╥ ╙╥├╚ [$╞446] TO LOCATE AND READ BLOCK HEADER.
- $╞4─╞ ╔F HEADER READ SUCCESSFULLY, BRANCH TO ╫╥╘12.
- $╞4┼1 ╥ETURN.
- $╞4┼2 ╫╥╘12 ╙ET .╪ TO $08 WHICH IS USED TO COUNT OFF THE GAP BYTES BETWEEN THE HEADER AND THE DATA.
- $╞4┼4 ╫╥╘15 ╫AIT FOR BYTE READY.
- $╞4┼7 ╫ASTE SOME TIME WHILE BYTE READY SIGNAL VANISHES.
- $╞4┼┬ ─ECREMENT .╪ AND LOOP BACK TO ╫╥╘15 IF NOT ZERO.
- $╞4┼┼ ╘URN ╨ORT ┬ LATCH OFF.
- $╞4╞0 ╙ET ╨ORT ┬ [$01] TO $╞╞.$╞4╞4 ╙ET CONTROL BITS IN ╨ORT ─ [$03] TO INDICATE WE ARE WRITING.
- $╞4╞8 ╫RITE 5 CONSECUTIVE $╞╞ BYTES FOR THE ╙┘╬├ MARK.
- $╞508 ╠OAD .┘ WITH $┬┬ (THE INDEX OF THE FIRST PART OF THE BLOCK IN THE OVERFLOW BUFFER).
- $╞50┴ ╫╥╘30 ╠OAD .┴ WITH (╧╓╥╨╬╘),┘ [($75),┘].
- $╞50├ ╫AIT FOR PREVIOUS BYTE WRITTEN.
- $╞50╞ ╧UTPUT BYTE TO ╨ORT ┬ [$01].
- $╞511 ╔NCREMENT .┘ AND LOOP BACK TO ╫╥╘30 IF NOT ZERO.
- $╞514 ╫╥╘40 ╠OAD .┴ WITH (┬╒╞╨╬╘),┘ [($42),┘].
- $╞516 ╫AIT FOR PREVIOUS BYTE WRITTEN.
- $╞519 ╧UTPUT BYTE TO ╨ORT ┬ [$01].
- $╞51┬ ╔NCREMENT .┘ AND LOOP BACK TO ╫╥╘40 IF NOT ZERO.
- $╞51┼ ╫AIT FOR PREVIOUS BYTE WRITTEN.
- $╞521 ╙ET ╨ORT ─ [$03] FOR READING ON ╨ORT ┬.
- $╞525 ┼NABLE LATCH MODE ON ╨ORT ┬.
- $╞527 ╙ET .┴ TO ZERO AND RETURN.
-